package com.ldj.base;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * All rights Reserved, Designed By 翼虎能源
 * Copyright:    Copyright(C) 2015-2015
 * Company       北京翼虎能源科技有限公司
 *
 * @author 吕东杰
 * @version 1.0
 * @date 2016/5/25 15:57
 * @Description Demo
 */
public interface BaseDao<Entity, PK extends Serializable> {
    Serializable save(Entity var1);

    void update(Entity var1);

    void saveOrUpdate(Entity var1);

    void merge(Entity var1);

    void refresh(Entity var1);

    void delete(Entity var1);

    void delete(PK var1);

    Entity findById(PK var1);

    List<Entity> findByIds(Collection<PK> var1);

    List<Entity> getAll();

    List<Entity> getAll(String var1, boolean var2);

    List<Entity> findByProperty(String var1, Object var2);

    Entity findUniqueByProperty(String var1, Object var2);

    boolean isPropertyUnique(String var1, Object var2, Object var3);

    void initProxyObject(Object var1);

    Page findPageByHQL(Page var1, String var2, boolean var3);

    Page findPageBySQL(Page var1, String var2, boolean var3);

    Page findPageByHQL(Page var1, String var2, String var3, boolean var4);

    Page findPageBySQL(Page var1, String var2, String var3, boolean var4);
}
